// stdx/taskx.rs
// CRITICAL: 任务抽象示例（在 std 中通常是 thread 或 future 任务）。

#[allow(dead_code)]
pub fn stdx_examples_taskx() {
    // CRITICAL: 任务可以通过 thread::spawn 创建，或通过 async/await 在 runtime 中运行
    let _ = "tasks: use thread::spawn or async runtimes";

    // CRITICAL: 使用 thread 创建任务
    use std::thread;
    let handle = thread::spawn(|| {
        println!("Task running in thread");
        42
    });
    let result = handle.join().unwrap();

    // CRITICAL: 任务本地存储
    thread_local! {
        static FOO: std::cell::RefCell<i32> = std::cell::RefCell::new(0);
    }
    FOO.with(|f| *f.borrow_mut() = 1);

    // CRITICAL: 任务唤醒器（Waker）
    use std::task::Waker;
    // Waker 通常由运行时提供，这里仅展示类型

    // CRITICAL: Context 用于 poll
    use std::task::Context;
    // Context 包含 Waker，用于异步任务

    let _ = (result,);
}
